﻿#ifndef CDATASOURCE_H
#define CDATASOURCE_H

#include "CStuInfo.h"
#include <QList>
// 数据源：数据库 or json

// 数据源接口类
// 这里的函数作为父类，只有函数的声明，没有函数的实现
// 函数的实现在子类

class CDataSource
{
public:
    CDataSource();
    virtual ~CDataSource(){};

    // /// 或 /** 后按回车，Qt Creator 会自动生成包含 @brief、@param、@return 等标签的注释模板
    /**
     * @brief 查询所有学生的信息
     * @param stuInfoList
     * @return true success
    */
    virtual bool selectStuInfo(QList<CStuInfo> &stuInfoList) = 0;       // =0 表示这是一个 纯虚函数 必须由派生类实现，不提供原有的实现

    /**
     * @brief 添加学生信息
     * @param stuInfo
     * @return true success
    */
    virtual bool addStuInfo(CStuInfo &stuInfo) = 0;

    /**
     * @brief 删除学生信息
     * @param id
     * @return true success
    */
    virtual bool deleteStuInfo(int id) = 0;

    /**
     * @brief 更改学生信息
     * @param stuInfo
     * @return true success
    */
    virtual bool updateStuInfo(CStuInfo &stuInfo,int idForMatch) = 0;



};

#endif // CDATASOURCE_H
